package com.webtest.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import java.io.StringWriter;

/**
 * @author lzy
 * @version v1.0
 * Create DateTime: 2018/8/12 17:46
 */
public class TestJspFragement extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        JspFragment bodyContent = getJspBody();
        // JspFragement:invoke(Writer):Writer即为标签体内容输出的字符流，若为null，则输出到getJspContext().getOut(),则输出到页面上。

        // 1. 利用Stringwriter得到标签体的内容
        StringWriter sw = new StringWriter();
        bodyContent.invoke(sw);

        // 2. 把标签体的内容都变为大写
        String content = sw.toString().toUpperCase();

        // 3. 获取JSP页面的out隐藏对象，输出到页面上
        getJspContext().getOut().print(content);
    }
}
